package com.wavehi.dao;

import com.wavehi.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author WaveHi
 * @Date 6/9/2021 下午 4:26
 * @Version 1.0
 * @Contact HJBWaveHi@163.com
 * @Description CRUD for table t_user
 */
public interface IUserDynamicSQLMapper {
    /**
     * 使用内置参数_parameter来查询数据
     * @param user
     * @return
     */
    List<User> selectByInnerParameter(User user);

    /**
     * 根据用户信息的个数动态添加信息
     * @param users 需要添加的用户信息
     * @return 返回false表示没有数据可以添加或添加操作失败
     */
    Boolean insertByCondition(@Param("users")List<User> users);

    /**
     * 根据范围查询用户信息
     * @param condition
     * @return
     */
    List<User> selectByConditionForEach(@Param("condition") List<String> condition);

    /**
     * 根据有值的字段为筛选条件查询用户
     * @param user 封装的字段
     */
    List<User> selectByConditionIf(User user);

    /**
     * 根据有值的字段为筛选条件查询用户
     * @param user 封装的字段
     */
    List<User> selectByConditionChoose(User user);

    /**
     * 根据有值的字段为筛选条件查询用户
     * @param user 封装的字段
     */
    List<User> selectByConditionTrim(User user);

    /**
     * 根据情况修改用户
     * @param user 需要修改的用户
     * @return 返回false表示修改失败
     */
    Boolean updateByCondition(User user);
}
